﻿using System;
using System.Xml.Linq;

namespace YArchitech.Temp
{
	public static class XElementExterns
	{
		public static XElement ChildElement(this XElement xe, string ChildElementName)
		{
			XElement xelement = xe.Element(ChildElementName);
			if (xelement == null)
			{
				xelement = new XElement(ChildElementName);
				xe.Add(xelement);
			}
			return xelement;
		}

		public static int GetIntAttribute(this XElement xe, string attributeName, int def = 0)
		{
			XAttribute xattribute = xe.Attribute(attributeName);
			if (xattribute == null)
			{
				return def;
			}
			return (int)xattribute;
		}

		public static double GetDoubleAttribute(this XElement xe, string attributeName, double def = 0.0)
		{
			XAttribute xattribute = xe.Attribute(attributeName);
			if (xattribute == null)
			{
				return def;
			}
			return (double)xattribute;
		}

		public static bool GetBoolAttribute(this XElement xe, string attributeName, bool def = false)
		{
			XAttribute xattribute = xe.Attribute(attributeName);
			if (xattribute == null)
			{
				return def;
			}
			return (bool)xattribute;
		}

		public static string GetStringAttribute(this XElement xe, string attributeName, string def = "")
		{
			XAttribute xattribute = xe.Attribute(attributeName);
			if (xattribute == null)
			{
				return def;
			}
			return xattribute.Value;
		}
	}
}
